package com.lmbx.shzh.service;

import com.lmbx.shzh.domain.common.ResponseResult;

import java.util.Date;
import java.util.Map;


public interface RainService   {

    /** 预警等级 立即转移 */
    int GRADE_4 = 4;
    /** 预警等级 准备转移 */
    int GRADE_5 = 5;
    /** 预警状态 已关闭 */
    int STATUS_CLOSED = 30;

    /**
     * 获取预报雨量
     * @param stm
     * @param etm
     * @return
     */

    ResponseResult getRain();
    /**
     * 实时雨情统计-
     * @param tm
     * @return
     */
    ResponseResult getRainNum();
    /**
     * 获取雨量超警
     * @param tm
     * @return
     */
    ResponseResult getRainTown(String vCode, int hour);
    /**
     * 水库水情1
     * @param stm
     * @param etm
     * @return
     */
    ResponseResult getRsvrAll();
    /**
     * 获取水库水位2
     * @param stm
     * @param etm
     * @return
     */
    ResponseResult getRsvr();
    /**
     * 获取河道水情1
     * @param stm
     * @param etm
     * @return
     */
    ResponseResult getRsverAll();
    /**
     * 获取河道水情2
     * @param stm
     * @param etm
     * @return
     */
    ResponseResult getRsver();
    /**
     * 获取山洪预警
     * @param stm
     * @param etm
     * @return
     */
    ResponseResult getWarnInfo();
    /**
     * 获取预报预警
     * @param stm
     * @param etm
     * @return
     */
    ResponseResult getRainFull();

    /**
     * 获得测站实时降雨
     * @param vCode
     * @return
     */
    ResponseResult getStationRain(String vCode, int num);
    ResponseResult rain(String vCode, int hour);
    ResponseResult ycRain(String vCode, int hour);
    ResponseResult getRain(String vCode, Date bt, Date et);
    ResponseResult getRiver(String vCode, Date bt, Date et);
    ResponseResult getRsvr(String vCode, Date bt, Date et);
    ResponseResult getWarn(String vCode, Date bt, Date et);
    ResponseResult rvfcch(String vCode, int hour);

    /**
     * 当前降雨的站点数目
     *
     * @param bt 开始时间
     * @param et 结束时间
     * @return
     */
    int rainingCount(Date bt, Date et);

    /**
     * 最大降雨的站点名称和降雨量
     *
     * @param bt 开始时间
     * @param et 结束时间
     * @return
     */
    Map<String, String> maxRainAddress(Date bt, Date et);

    /**
     * 获取超过警戒线的河道个数
     *
     * @param bt 开始时间
     * @param et 结束时间
     * @return
     */
    int rsvrCountOverWarn(Date bt, Date et);

    /**
     * 获取超过汛限水位的水库个数
     *
     * @param bt 开始时间
     * @param et 结束时间
     * @return
     */
    int riverCountOverWarn(Date bt, Date et);

    /**
     * 山洪预警个数
     */
    int shWarnCount(Date bt, Date et, Integer gradeID, Integer statusID);

    /**
     * 获取水库和雨量预警数据列表
     */
    ResponseResult getAlarmList(String alarmId, String startTime, String endTime);

    /**
     * 获取雨量详情
     */
    ResponseResult getRainInfo(String stcd, Date bt, Date et);

    /**
     * 实时水库水情
     */
    ResponseResult getRsvrInfo(String stcd, Date bt, Date et);

    ResponseResult getRiverById(String stcd, Date d1, Date d2);

    int getWarnById(String warnId, String statusID);
}
